// Roles.h: interface for the CRoles class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_ROLES_H__2E778727_1FA3_49F9_A1C0_289EBA8CC363__INCLUDED_)
#define AFX_ROLES_H__2E778727_1FA3_49F9_A1C0_289EBA8CC363__INCLUDED_

#include "CopyableMap.h"
#include "ItemsArray.h"
#include "Storage.h"

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class CRoles
{
// Basics
public:
	CRoles(CStorage &m_storage);
	virtual ~CRoles();
// 	enum EGatewayState
// 	{
// 		NO_ADMITTANCE	= 0,
// 		ADMITTANCE		= 1
// 	};
// Attribute
public:
	CCopyableMap<CString,LPCTSTR,CStringItemsArray,CStringItemsArray&> m_mapRoles;
private:
	CStorage &m_storage;
// Functions
public:
	void AddRole(const CString &strRoleName, const CStringItemsArray &arrAdmittanceGatewaysNames);
 	void UpdateRole(const CString &strOriginalRoleName, const CString &strNewRoleName, const CStringItemsArray &arrAdmittanceGatewaysNames);
	void DeleteRole(const CString &strRoleName);
};

#endif // !defined(AFX_ROLES_H__2E778727_1FA3_49F9_A1C0_289EBA8CC363__INCLUDED_)
